package samber

import (
	"fmt"
	"github.com/samber/lo"
)

// Validate 不满足则抛个错误
func Validate() {
	i := 42

	err1 := lo.Validate(i < 0, "expected %d < 0", i)
	err2 := lo.Validate(i > 0, "expected %d > 0", i)

	fmt.Printf("%v\n", err1) // expected 42 < 0
	fmt.Printf("%v\n", err2) // nil
}

// ValueOr Map获取不到Key则返回一个默认值
func ValueOr() {
	kv := map[string]int{"foo": 1, "bar": 2}
	fmt.Printf("%v\n", lo.ValueOr(kv, "foo", 42)) // 1
	fmt.Printf("%v\n", lo.ValueOr(kv, "baz", 42)) // 42
}

// Values Map的value成数组
func Values() {
	kv := map[string]int{"foo": 1, "bar": 2}
	result := lo.Values(kv)
	fmt.Printf("%v\n", result) // [1, 2]
}
